interface Point_inter {
  x: number,
  y: number
}

function printCoord_inter(pt: Point_inter) { }

printCoord_inter({
  x: 100,
  y: 200
})

// 接口和类型别名的区别
// 接通过extends关键字进行扩展
// interface Animal {
//   name: string
// }

// interface Bear extends Animal {
//   honey: boolean
// }

// const bear: Bear = {
//   name: 'bobe',
//   honey: true
// }

// console.log(bear.name)
// console.log(bear.honey)

// 类型别名通过 交叉符号 扩展
// type Animal = {
//   name: string
// }

// type Bear = Animal & {
//   honey: boolean
// }

// const bear: Bear = {
//   name: 'bobo',
//   honey: false
// }

// 向现有的类型中添加新字段
// 接口可以通过定义两次同名的接口可以合并新的字段
// interface myWindow {
//   count: number
// }

// interface myWindow {
//   title: string
// }

// const w: myWindow = {
//   count: 100,
//   title: 'hello'
// }

// 类型创建以后不能进行扩展（不能通过定义同一个名称去扩展类型）
// type myWindow = {
//   title: string
// }

// type myWindow = {
//   count: number
// }